#ifndef VM_PAGE_H
#define VM_PAGE_H

#include <kernel/hash.h>

struct page_info
{
   void * upage;
   struct hash_elem elem;
};

bool page_init (struct hash*);
void page_delete (struct hash*);
void page_release (struct hash_elem*);
struct page_info* get_new_page (struct hash*, void*);
struct page_info* get_page (struct hash*, void*);

unsigned page_init_semi (struct hash_elem*);
bool page_less_func (struct hash_elem*, struct hash_elem*);

#endif /* VM_PAGE_H */
